System and method for a gamut mapping platform having plug-in transform functions

ABSTRACT

A system and related techniques enhance the gamut mapping from input devices, such as cameras, scanners and other devices or sources to output devices such as printers or other destinations in modular, plug-in fashion. An operating system may expose an application programming interface or other resource to graphical and other applications, as well as printers and other output devices, which accepts custom gamut mappings for use in one or more applications or devices. The mappings may be stored in parameterized representations of transforms from a source space to a destination space, such as transforms involving color limits, compression and other variables. Unlike prior color management systems where applications might hardcode gamut mappings for specific purposes, according to the invention in one regard a generalized modular architecture permits any application, input device or output device to supply specific parameterized rendering data for desired output results.

CROSS-REFERENCE TO RELATED APPLICATION

Not applicable.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

FIELD OF THE INVENTION

The invention relates to the field of digital imaging, and moreparticularly to a platform which accepts and operates on parameterizedcolor gamut mappings between input and output devices.

BACKGROUND OF THE INVENTION

The field of digital imaging has long recognized the problem of colorgamut mapping, or the translation of one volumetric color range for acamera, scanner or other input or capture device to the color range fora printer or other output device. Since both the input and outputdevices have a limited dynamic range, and those ranges rarely if evercoincide, some type of mapping must be generated to preserve the best,most accurate or most pleasing color palette when processing an imagefrom input to output. As illustrated in FIG. 1, when viewing an imagescanned at one machine over the Internet or other network at anothermachine, multiple gamut conversions or image reproductions, eachsusceptible to possible mismatches, have to occur. As one consequence,studies suggest that undesired product color may be among the mostfrequent reasons for online purchase returns.

Traditionally, a handful of gamut mapping techniques have been employedto try to maintain color integrity. According to one approach, the imagesource might be accepted in raw form—with color values unaltered after,for example, capture in the CCD of a digital camera. A user wishing toprint the image on an inkjet or other printer may then dial hues up ordown, manually to reach a visually satisfactory result on theirparticular display screen, color printer or other output device.

In another approach, a color management profile such as the formatpromulgated by the International Color Consortium (ICC) may be generatedfor specific devices. That profile may permit known sources or devicesto map images or gamuts to a device-independent color space, from whicha display, printer or other output device may be rendered, for examplewith desired preferences such as reduced saturation or enhanced color.Common graphical objects such as slide shows, pie charts or digitalphotographs may have generic profiles built up for them. However,profile-based systems including the ICC standard merely take mappingsfrom a specifically defined and not general input, image or other sourceto a predefined printer or other output. Such systems do not permit theready, or even possible, substitution of the transform functions,themselves.

In another alternative, some computer applications, particularlyhigh-end graphical or video applications, have individually hard-coded aset of gamut mappings related to a given manufacturer's camera, scanner,printer, cathode ray tube or other device or source. While such solutionsets may yield satisfactory results in given applications, they are notgeneral purpose and the user may be left at the mercy of themanufacturer's supplied, non-alterable transforms even if not preferred.Other problems in color management technology exist.

SUMMARY OF THE INVENTION

The invention overcoming these and other problems in the art relates inone regard to a system and method for a gamut mapping platform, in whichthe gamut transform mapping used for color correction may be separatedfrom individual applications and device drivers, and hosted in a modularinput module which may accept transform functions and related parametersfrom applications and other sources. In embodiments, the transform inputmodule may reside in an operating system, and receive a computationalexpression which takes input values from a source gamut and maps tooutput values on a destination gamut. A graphical image file whenreceived may then be processed in a gamut transform engine which encodesa transformed output for that image for display on a monitor, printer orother output device. Because the mapping from source gamut todestination gamut may be stored in intermediate logic, applications suchas digital photo, video or other packages are freed from necessarilyhaving to supply gamut transforms themselves, although applicationpackages and other sources may supply selected transform mappings to thetransform input module as desired.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a gamut conversion process, according to existingtechniques.

FIG. 2 illustrates a gamut mapping process, which may be incorporated inembodiments of the invention.

FIG. 3 illustrates an architecture for gamut management using a modulargamut transform, according to embodiments of the invention.

FIG. 4 illustrates overall gamut transformation processing, according toan embodiment of the invention.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 2 illustrates an overview of source-to-destination gamut mappingwhich embodiments of the invention may incorporate or operate upon. Asshown the process may start with a source gamut 102, representing thecomplete color range which a source of an image may be capable ofdetecting or producing. For example, the source gamut 102 may representthe range of colors which a digital camera or video camera is capable ofdisplaying, in RGB space. Other representations, such as CMYK, may alsoencode the source gamut 102. In embodiments, the source gamut 102 may bestored in the form of a surface mesh of function enclosing athree-dimensional or other volumetric space consisting of the colorsthat the input device can capture.

Conversely, as also shown in FIG. 2 embodiments of the invention mayalso incorporate or operate upon a destination gamut 104, representingthe color range which a monitor, printer or other output device may becapable of displaying. It may be noted that both the source gamut 102and destination gamut 104 reflect a set of colors which is less than theabsolute possible range of all mathematical color values, do tolimitations in sensors such as CCDs, phosphors in monitors, inks orlasers in printers, or other electrical, mechanical or optical parts.

According to the gamut mapping platform of the invention in one regard,a mapping from source gamut 102 to destination gamut 104 may beperformed or generated, to attempt to make the color content of an imagewhich is ultimately displayed as close to the color range originallycaptured in the input device, or in the imaged object itself. Themapping or transform may consist of a mathematical equation or set ofexpressions which take points in the color space of the source gamut 102and map them to points in the color space of destination 104. Inembodiments, that mapping may or may not be one-to-one depending ondevice characteristics and regions of the gamut in which the transformis operating.

The gamut transform may in cases include an exponential, algebraic orother function which derives a new set of color coordinates from thesource gamut 102 to arrive at the closest or approximately similar huein the color space of destination gamut 104. In embodiments, the gamuttransform may parameterize parts of that mapping expression, so that,for instance, the value of an exponent may be adjusted to cause greateror lesser alteration of the color data. It may likewise be noted thatthe gamut transform may consist of more than one mathematicalexpression, depending on factors such as the color region in which thesource data point is being taken. Once the gamut transform from thesource gamut 102 to the destination gamut 104 is established, a subjectimage file, such as a digital photograph or other graphical object ormedia, may be processed according to that transform to conform thedisplayed, printed or other output as closely as possible to theoriginal source.

According to embodiments of the invention in another regard, the gamutmapping or transform logic which is applied to source images may beseparated from application programs or other “hardwired” sources, and beconfigured in a modular platform permitting parameterized transformfunctions to be substituted in and out of the transform engine beforeprocessing. As illustrated in FIG. 3, according to embodiments of theinvention the gamut transform platform may include a set of resourcesincluding a transform input module 106 and gamut transform engine 108 tosupport that modularity. In embodiments as shown, the transform inputmodule 106 and gamut transform engine 108 may both reside within anoperating system, such as the Microsoft Windows™ family of operatingsystems or others, and expose gamut transformation services to one ormore application 114 through an application programming interface 112.In operation as shown, the transform input module 106 may receive agamut transform to drive the gamut matching of an image file 116, whichmay be or include, for instance, digital photographs, video clips orother media or content, in JPG, GIF, Windows Media, Real™ video or otherformats or files for display, printing or other output.

The transform input module 106 may receive the gamut mapping from theapplication 114 itself, or from a user-selected or other source. Forexample, the manufacturer of a printer or other output device mayassemble a transform or library of transforms to be accessed by orincorporated in the operating system or other supporting platform forthe transform engine. In embodiments, the transform input module 106 maycontain or access a default gamut transform, for instance one based onperceptual intents such as the color-enhanced display of digitalphotographs. In embodiments, desired transform parameters may bedynamically selected by the user, for instance via an interactivegraphical or other interface, for example displaying real-timeadjustments, or otherwise. In other embodiments, other perceptualintents or preferences may be used, for example in a set of defaulttransforms or otherwise.

With a gamut transform function and any necessary parameters received intransform input module 106, the gamut transform engine 108 may accessthat expression and operate to transform the source color data of imagefile 116 for output. In embodiments, the gamut transform engine 108 may,for example, traverse the mesh or other contours of the source gamut 102and generate a set of deltas in a lookup table (LUT) indicating whatcolor points adjust by how much to arrive at a corresponding hue in thedestination gamut 104, again such as a printer or other output device. Alookup table storing translation to final destination values may also beused. Other representations or encodings of the relationship between thesource gamut 102 and the destination gamut 104 under the operative gamuttransform may be used.

One the gamut transform engine 108 identifies the necessary LUT or othertransform encoding, the gamut transform engine 108 may apply thatmapping to the color values of image file 116 to generate a transformedimage file for output. For example, transformed 8 or 24-bit JPG valuesmay be generated from the image file 116 which may to the destinationgamut 104 of a target printer, monitor or other device. The transformedimage file or data therefrom may be communicated to a device driver 110,which may also be resident in the operating system, for display on thatmonitor or other device. Because the gamut transform is abstracted andexposed to applications and other consumers in a modular, transparentmanner the application need no longer hard code a gamut mapping foroutput or other purposes. Moreover, individual users may adjust andrefine different gamut transforms for different purposes, such asmappings which provide satisfactory results for a given model or type ofdigital camera when images are printed to a certain manufacturer'sprinter. Libraries or classes of gamut transforms may be developed to betransmitted to transform input module 106, for example mappings whichemulate 35 mm film by emphasizing green or other hues. Other mappings,transforms and perceptual intents are possible, which may in embodimentsbe interactively selectable by the user.

FIG. 4 illustrates overall gamut mapping processing, according toembodiments of the invention. In step 402, processing may begin. In step404, a description of source gamut 102 may be received, for example adescription of the volumetric (three dimensional) boundaries, surface ormesh of that gamut or space. In step 404, a description of thedestination gamut 104 may be received, for example likewise in the formof volumetric boundaries, surface or mesh of that gamut or space. Gamutsexpressed in one, two or four or more dimensional space may likewise bereceived.

In step 408, a parameterized gamut transform may be received intransform input module 106, for instance from an application, disk orother media, an Internet site or other source. The gamut transform maytake the form, for example, of an exponential, algebraic or otherfunction mapping color, hue, saturation, intensity or other color orimage variables from source gamut 102 to destination gamut 104, or takeon other forms. In embodiments parameters, such as exponent values to beused in the mapping computations, may likewise be received. In step 410,the gamut transform engine 108 may traverse the source gamut 102 andapply the modular gamut transform to that gamut to generatecorresponding points on the destination gamut 104. In step 412, a lookuptable of source-to-destination deltas or other encoded representationindicating the conversion from source gamut 102 to destination gamut 104may be generated.

In step 414, the resulting lookup table or other encoded transformrepresentation may be applied to the image file 116 or other source datato generate a transformed image file or other object. In step 416, thetransformed image file may be transmitted to device driver 110, forexample a video card driver, a monitor or printer driver, a digitalcamera driver or software, or other driver or software to generate thepixels or other information for display. In step 418, the resultingimage may be displayed or output, for example on a monitor, in a color,black and white, halftone or other printed output, in a facsimile orother output or format. In step 420, processing may repeat, return to aprior processing point, jump to a further processing point or end.

The foregoing description of the invention is illustrative, andmodifications in configuration and implementation will occur to personsskilled in the art. For instance, while the invention has generally beendescribed in terms of embodiments in which a single gamut transformengine 108 within an operating system generates output transformations,in embodiments multiple transform engines or modules within or outsidean operating system may perform the same logic and computation.

Similarly, while the invention has in embodiments been described asoperating on an image file 116, in embodiments and usage different typesof source objects or files may be processed and transformed, such astextual, mixed text and graphics, video sample or other visualinformation. Other hardware, software or other resources described assingular may in embodiments be distributed, and similarly in embodimentsresources described as distributed may be combined. Further, while theinvention has generally been described as applying a single gamutmapping supplied by one application 114, in embodiments more than onegamut mapping, or a series of consecutive mappings may be supplied bymultiple applications and other sources, and applied to the image file116 or other source object. The scope of the invention is accordinglyintended to be limited only by the following claims.

1. A system for managing the gamut transformation of a graphical image,comprising: a transform input module to receive a modular gamuttransform; a gamut transform engine, the gamut transform enginecommunicating with the transform input module to receive the modulargamut transform and transform a graphical image thereby; and aninterface to a device driver, the gamut transform engine transmittingthe transformed graphical image to the device driver to output thetransformed graphical image.
 2. A system according to claim 1, whereinat least one of the transform input module and the gamut transformengine reside in an operating system.
 3. A system according to claim 1,wherein the modular gamut transform comprises at least one of a gamuttransform function, gamut range mapping data, gamut constraint data andgamut transform function parameters.
 4. A system according to claim 3,wherein the modular gamut transform comprises at least one of acompression function and a decompression function.
 5. A system accordingto claim 1, wherein the transformation of the graphical image comprisesgenerating a gamut lookup table for output on an associated outputdevice.
 6. A system according to claim 5, wherein the output devicecomprises a printer.
 7. A system according to claim 1, wherein themodular gamut transform is supplied by an application.
 8. A systemaccording to claim 1, wherein the gamut transform engine transforms thegraphical image using a default gamut transform when no modular gamuttransform is supplied.
 9. A system according to claim 8, wherein thedefault gamut transform is based on a perceptual intent.
 10. A systemaccording to claim 1, wherein the gamut transform engine traverses atleast one of a source gamma mesh associated with an input device and adestination gamma mesh associated with the output device, applying themodular gamma transform thereto.
 11. A system according to claim 1,wherein the graphical image comprises at least one of a graphical imagedata, textual data and video data.
 12. A method for managing the gamuttransformation of a graphical image, comprising: receiving a modulargamut transform; transforming a graphical image via the modular gamuttransform; and transmitting the transformed graphical image to thedevice driver to output the transformed graphical image.
 13. A methodaccording to claim 12, wherein at least one of the receiving and thetransforming is performed in an operating system.
 14. A method accordingto claim 12, wherein the modular gamut transform comprises at least oneof a gamut transform function, gamut range mapping data, gamutconstraint data and gamut transform function parameters.
 15. A methodaccording to claim 14, wherein the gamut transform function comprises atleast one of a compression function and a decompression function.
 16. Amethod according to claim 12, wherein the transforming comprisesgenerating a gamut lookup table for output on an associated outputdevice.
 17. A method according to claim 16, wherein the output devicecomprises a printer.
 18. A method according to claim 12, wherein themodular gamut transform is supplied by an application.
 19. A methodaccording to claim 12, wherein the transforming uses a default gamuttransform when no modular gamut transform is supplied.
 20. A methodaccording to claim 19, wherein the default gamut transform is based on adefault perceptual intent.
 21. A method according to claim 12, whereinthe transforming comprises traversing at least one of a source gammamesh associated with an input device and a destination gamma meshassociated with the output device, applying the modular gamma transformthereto.
 22. A method according to claim 12, wherein the graphical imagecomprises at least one of a graphical image data, textual data and videodata.
 23. A graphical image, the graphical image being transformed foroutput according to a method comprising: receiving a modular gamuttransform; transforming a graphical image via the modular gamuttransform; and transmitting the transformed graphical image to thedevice driver to output the transformed graphical image.
 24. A graphicalimage according to claim 23, wherein at least one of the receiving andthe transforming is performed in an operating system.
 25. A graphicalimage according to claim 23, wherein the modular gamut transformcomprises at least one of a gamut transform function, gamut rangemapping data, gamut constraint data and gamut transform functionparameters.
 26. A graphical image according to claim 23, wherein theoutput device comprises a printer.
 27. A graphical according to claim23, wherein the transforming comprises traversing at least one of asource gamma mesh associated with an input device and a destinationgamma mesh associated with the output device, applying the modular gammatransform thereto.
 28. A graphical image according to claim 23, whereinthe graphical image comprises at least one of a graphical image data,textual data and video data.
 29. A system for managing the gamuttransformation of a graphical image, comprising: transform input meansto receive a modular gamut transform; gamut transform means, the gamuttransform means communicating with the transform input means to receivethe modular gamut transform and transform a graphical image thereby; andinterface means to a device driver, the gamut transform meanstransmitting the transformed graphical image to the device driver tooutput the transformed graphical image.
 30. A system according to claim29, wherein the transformation of the graphical image comprisesgenerating a gamut lookup table for output on an associated outputdevice.
 31. A system according to claim 29, wherein the output devicecomprises a printer.
 32. A system according to claim 29, wherein thegamut transform means traverses at least one of a source gamma meshassociated with an input device and a destination gamma mesh associatedwith the output device, applying the modular gamma transform thereto.33. A system according to claim 29, wherein the graphical imagecomprises at least one of a graphical image data, textual data and videodata.